Skip to main content
Voucherify test documentation home page
Search...
⌘K
Documentation
Community
Blog
Endpoints
Publications
Qualifications
Validations
Redemptions
GET
List Redemptions
POST
Redeem Stackable Discounts
GET
Get Redemption
GET
Get Voucher's Redemptions
POST
Redeem Voucher [Deprecated]
deprecated
POST
Rollback Redemption
POST
Redeem Promotion [Deprecated]
deprecated
POST
Rollback Stackable Redemptions
Vouchers
Campaigns
Promotions
Rewards
Loyalties
Customers
Orders
Products
Product Collections
Validation Rules
Segments
Events
Async Actions
Exports
Categories
Metadata Schemas
Locations
Referrals
Bin
Templates
Management
OAuth
Client-side
Events
Events redemption
Events customer
Events publication
Events voucher
Events campaign
Events bus_val_rule
Events distribution
Voucherify test documentation home page
Search...
⌘K
Support
Dashboard
Dashboard
Search...
Navigation
Redemptions
Redeem Voucher [Deprecated]
Developer guides
API reference
Voucherify dashboard documentation
Developer guides
API reference
Voucherify dashboard documentation
Support
Dashboard
Redemptions
Redeem Voucher [Deprecated]
Copy page
<!-- theme: danger --> > ❗️ Deprecated > > This endpoint represents the deprecated version of the API responsible for voucher redemption, and we do not recommend using it. The new [Stackable Discounts API](ref:redeem-stacked-discounts) introduces additional features and improvements while maintaining backward compatibility, including applying a combination of coupon codes and promotion tiers. Developers are encouraged to migrate to the latest version to take advantage of the latest enhancements and bug fixes. No updates will be provided to the deprecated endpoint. To redeem a voucher, you create a redemption object. It increments the redemption counter and updates the history of the voucher. ## How discounts and order amounts are calculated in the API response? In the table below, you can see the logic the API follows to calculate discounts and amounts: | **Field** | **Calculation** | **Description** | |:---|:---|:---| | amount | N/A | This field shows the order amount before applying any discount | | total_amount | total_amount = amount - total_discount_amount | This field shows the order amount after applying all the discounts | | discount_amount | discount_amount = previous_discount_amount + applied_discount_amount | This field sums up all order-level discounts applied to a patricular order | | items_discount_amount | sum(items, i => i.discount_amount) | This field sums up all product-specific discounts applied to this order | | total_discount_amount | total_discount_amount = discount_amount + items_discount_amount | This field sums up all order-level and all product-specific discounts applied to this order | | applied_discount_amount | N/A | This field shows order-level discount applied in a particular request | | items_applied_discount_amount | sum(items, i => i.applied_discount_amount) | This field sums up all product-specific discounts applied in a particular request | | total_applied_discount_amount | total_applied_discount_amount = applied_discount_amount + items_applied_discount_amount | This field sums up all order-level and all product-specific discounts applied in a particular request | ## SDKs You can invoke the redemption endpoint with one of the official libraries: <!-- [](https://github.com/rspective/voucherify-php-sdk) [](https://github.com/rspective/voucherify.js) [](https://github.com/rspective/voucherify-nodejs-sdk) [](https://github.com/rspective/voucherify-ruby-sdk) [](https://github.com/voucherifyio/voucherify-ios-sdk) [](https://github.com/rspective/voucherify-java-sdk) [](https://github.com/rspective/voucherify-android-sdk) [](https://github.com/voucherifyio/voucherify-dotNET-sdk) [](https://github.com/voucherifyio/voucherify-python-sdk) --> [block:html] { "html": "<div class=\"items\">\n\n<div class=\"item\"><a href=\"https://github.com/rspective/voucherify-php-sdk\" target=\"_blank\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"42\" height=\"42\" viewBox=\"0 0 68 42\" enable-background=\"new 0 0 68 42\"><g fill=\"#4F5B93\"><path d=\"M51 15.7h-2.8l-1.5 7.9h2.5c1.7 0 2.8-.3 3.7-.9.8-.6 1.4-1.7 1.7-3.1.3-1.4.2-2.4-.4-2.9-.6-.8-1.6-1-3.2-1m-31.7 0h-2.8L15 23.6h2.4c1.7 0 2.8-.3 3.7-.9s1.4-1.7 1.7-3.1c.3-1.4.2-2.4-.4-2.9-.5-.8-1.5-1-3.1-1\"></path><path d=\"M34 3.6C15.3 3.6 0 11.4 0 21s15.2 17.4 34 17.4c18.7 0 34-7.8 34-17.4 0-9.6-15.3-17.4-34-17.4zm-9.6 20.8c-.8.7-1.7 1.3-2.7 1.7-1 .4-2.3.5-3.8.5h-3.5l-.9 5.1h-4l3.6-18.8H21c2.4 0 4 .6 5.1 1.8 1.1 1.3 1.4 3 1 5.2-.2.9-.5 1.7-.9 2.5-.6.6-1.1 1.4-1.8 2zm11.8 2.1l1.6-8.4c.2-.9.1-1.6-.2-1.9-.3-.4-1-.6-2-.6h-3.2l-2 10.8h-4L30 7.6h4l-.9 5.1h3.6c2.3 0 3.9.4 4.7 1.2s1.1 2.1.7 3.9l-1.7 8.7h-4.2zm22.4-6.7c-.2.9-.5 1.7-.9 2.5-.5.7-1 1.5-1.7 2.1-.8.7-1.7 1.3-2.7 1.7-1 .3-2.3.5-3.8.5H46l-.9 5.1h-4l3.6-18.8h7.8c2.4 0 4 .6 5.1 1.8 1.1 1.1 1.5 2.8 1 5.1z\"></path></g></svg></a></div>\n \n<div class=\"item\"><a href=\"https://github.com/rspective/voucherify.js\" target=\"_blank\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"42\" viewBox=\"0 0 40 42\" enable-background=\"new 0 0 40 42\"><path fill=\"#F8DC3C\" d=\"M38.3 1H1.7C.8 1 0 1.8 0 2.7v36.5c0 1 .8 1.7 1.7 1.7h36.5c1 0 1.7-.8 1.7-1.7V2.7c.1-.9-.7-1.7-1.6-1.7zM23.9 31.8c0 .5-.1 1-.2 1.7-.1.5-.3 1.1-.6 1.6s-.7.9-1.3 1.2c-.5.3-1.2.4-2.1.4-1.1 0-2-.3-2.7-.9-.7-.6-1.1-1.3-1.4-2.3l2.3-.6c.1.4.3.8.6 1.1.3.3.7.4 1.1.4.3 0 .6-.1.9-.2.3-.1.4-.3.5-.5.1-.3.2-.5.3-.9s.1-.7.1-1.1v-9.4h2.5v9.5zm11.3 2.3c-.3.5-.6 1-1.1 1.4-.4.3-1 .6-1.7.9-.6.2-1.3.3-1.9.3-.9 0-1.8-.2-2.7-.5-.9-.3-1.6-.9-2.1-1.5l1.7-1.7c.3.4.8.9 1.4 1.1.6.3 1.1.4 1.7.4.3 0 .6 0 .9-.1.3-.1.6-.2.8-.3.3-.2.4-.3.6-.6.2-.3.3-.6.3-1 0-.3-.1-.7-.3-1-.2-.3-.4-.4-.7-.6-.3-.2-.6-.3-1-.4-.4-.1-.8-.3-1.2-.4-.4-.2-.9-.3-1.3-.4-.4-.2-.8-.4-1.1-.7-.3-.3-.6-.7-.8-1.1-.2-.4-.3-1-.3-1.7s.2-1.3.4-1.8c.3-.5.7-1 1.1-1.3.4-.3 1-.6 1.7-.8.6-.2 1.2-.3 1.8-.3.7 0 1.4.1 2.2.3.7.3 1.4.6 1.9 1.1l-1.7 1.7c-.3-.3-.6-.6-1.1-.9-.5-.3-1-.3-1.5-.3-.3 0-.6 0-.9.1-.3.1-.5.2-.8.3-.3.2-.4.3-.6.6-.2.3-.3.5-.3.9s.1.6.2.8c.2.3.3.4.5.6.3.2.5.3.9.4.3.1.7.3 1 .3.4.2.9.3 1.4.5.5.2 1 .4 1.3.7.4.3.7.7 1 1.1s.3 1 .3 1.7c.5 1 .3 1.7 0 2.2z\"></path></svg></a></div>\n\n<div class=\"item\"><a href=\"https://github.com/rspective/voucherify-nodejs-sdk\" target=\"_blank\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"39\" height=\"42\" viewBox=\"0 0 39 42\" enable-background=\"new 0 0 39 42\"><path fill=\"#8FC84F\" d=\"M17.8.5c1-.6 2.4-.6 3.4 0 5.2 3 10.5 5.9 15.7 8.9 1 .6 1.6 1.7 1.6 2.8V30c0 1.2-.7 2.3-1.8 2.8-5.2 2.9-10.4 5.9-15.6 8.8-1.1.6-2.4.6-3.5-.1-1.6-.9-3.1-1.8-4.7-2.7-.3-.2-.7-.3-.9-.7.2-.3.6-.3.8-.4.7-.2 1.3-.5 1.9-.9.2-.1.3-.1.5 0 1.3.8 2.7 1.6 4 2.3.3.2.6-.1.8-.2 5.1-2.9 10.2-5.8 15.4-8.7.2-.1.3-.3.3-.5V12.1c0-.2-.1-.5-.3-.5C30.2 8.7 25 5.7 19.8 2.8c-.2-.1-.4-.1-.6 0C14 5.7 8.8 8.7 3.6 11.6c-.2.1-.4.3-.3.5v17.6c0 .2.1.4.3.5l4.2 2.4c.8.4 1.7.7 2.6.3.8-.3 1.3-1 1.3-1.9V13.5c0-.3.2-.5.5-.4h2c.3 0 .5.3.4.5v17.6c0 1.6-.6 3.3-2.1 4-1.8.9-4 .7-5.8-.2-1.5-.8-3-1.7-4.5-2.5-1-.5-1.8-1.7-1.8-2.8V12.2c0-1.2.7-2.3 1.7-2.8 5.2-3 10.5-5.9 15.7-8.9zM22.4 12.9c2.3-.1 4.7-.1 6.8 1 1.6.9 2.5 2.7 2.5 4.4 0 .2-.3.4-.5.4h-2c-.3 0-.4-.2-.5-.5-.2-.8-.6-1.7-1.4-2.1-1.2-.6-2.6-.6-4-.6-1 .1-2 .1-2.8.7-.6.4-.8 1.3-.6 2 .2.5.8.7 1.3.8 2.7.7 5.6.6 8.3 1.6 1.1.4 2.2 1.1 2.6 2.3.5 1.6.3 3.4-.8 4.7-.9 1-2.2 1.6-3.5 1.9-1.7.4-3.6.4-5.3.2-1.7-.2-3.4-.6-4.7-1.8-1.1-1-1.6-2.4-1.6-3.9 0-.2.3-.4.5-.4h2c.3 0 .5.2.5.5.1.8.4 1.6 1.1 2.1 1.4.9 3 .8 4.6.8 1.3-.1 2.7-.1 3.8-.9.6-.5.7-1.3.6-2-.2-.6-.8-.9-1.3-1-2.7-.9-5.6-.5-8.3-1.5-1.1-.4-2.1-1.1-2.6-2.2-.6-1.6-.3-3.5.9-4.8 1-1.1 2.8-1.6 4.4-1.7z\"></path></svg></a></div>\n\n<div class=\"item\"><a href=\"https://github.com/rspective/voucherify-ruby-sdk\" target=\"_blank\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"38\" height=\"42\" viewBox=\"0 0 38 42\" enable-background=\"new 0 0 38 42\"><path fill=\"#CC342D\" d=\"M1.4 21.6c.3-.8.5-2.3 1.2-3.6 3.2-6.5 8.2-11.2 14.7-14.1 1.3-.6 2.8-.8 4.2-.8 1.8 0 2.9 1.2 3.1 3 .1.9.1 1.9-.3 2.8-3.1 8.4-9 14-17.4 17.2-.3.1-.7.2-1 .2-2.7.5-4.5-1.1-4.5-4.7zm21.8-6.3c4.5-.3 9.1-.7 13.8-1l-.8-.8C32.1 10.3 28 7 23.9 3.6c-.4-.3-.7-.8-1.2-1.6h4.6c1.7 0 3.5-.2 5.1.2 3.6.7 5.6 3 5.5 6.7-.1 3.5-.4 6.9-.7 10.4-.4 5.3-.8 10.5-1.2 15.8-.1.9-.2 1.9-.3 2.9-1.9-1.7-3.7-3.4-5.6-5-.3-.3-.4-.5-.7-.7-2.2-1.4-3.1-3.5-3.6-6.1-.7-3.3-1.6-6.6-2.4-9.9-.1-.2-.1-.5-.2-1zM6 35.5c1-.2 1.9-.2 2.8-.4.3-.1.8-.5.8-.8.8-2.6 1.6-5.2 2.4-7.9.1-.3.2-.4.3-.8 4.8 1.5 9.5 3 14.4 4.6-2.5 2.6-5.2 4.7-8.3 6.7 5.4.4 10.8.8 16.1 1.3v.2c-1.2.1-2.4.2-3.5.3-6.8.4-13.6.9-20.5 1.3-1.1-.1-2.2 0-3.3 0-4.6-.1-7.2-2.6-7.2-7.2 0-2.6.3-5.2.4-7.8 0-.2.3-.3.4-.6.3.2.6.3.7.6l4 9.6c.2.3.3.5.5.9z\"></path></svg></a></div>\n\n\n<div class=\"item\"><a href=\"https://github.com/voucherifyio/voucherify-ios-sdk\" target=\"_blank\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"42\" viewBox=\"0 0 40 42\" enable-background=\"new 0 0 40 42\"><path fill=\"#F47B3A\" d=\"M31.1 1H8.9C4 1 0 5 0 9.9v22.3C0 37 4 41 8.9 41h22.3c4.9 0 8.9-4 8.9-8.9V9.9C40 5 36 1 31.1 1zm2.7 32.7s-1.6-2.6-4.2-2.6c-2.5 0-4 2.6-9 2.6-11.2 0-16.5-9.4-16.5-9.4 10.1 6.6 17 1.9 17 1.9-4.6-2.6-14.3-15.3-14.3-15.3 8.5 7.3 12.2 9.2 12.2 9.2-2.2-1.8-8.3-10.5-8.3-10.5 4.9 5 14.6 11.8 14.6 11.8 2.6-7.2-2.1-13.7-2.6-14.3 13.1 9 8.9 18.8 8.9 18.8s3.7 4.1 2.2 7.8z\"></path><path fill=\"#DD6631\" d=\"M4.2 24.4c10.1 6.6 17 1.9 17 1.9C16.6 23.7 6.9 11 6.9 11c8.4 7.2 12.1 9.1 12.1 9.1-2.2-1.8-8.3-10.5-8.3-10.5 4.9 5 14.6 11.8 14.6 11.8C28 14.1 23 7.5 22.7 7.1l-.1-.1-5.8-6H8.9C4 1 0 5 0 9.9V20l4.2 4.4c-.1 0-.1 0 0 0\"></path></svg></a></div>\n\n<div class=\"item\"><a href=\"https://github.com/rspective/voucherify-java-sdk\" target=\"_blank\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"42\" viewBox=\"0 0 32 42\" enable-background=\"new 0 0 32 42\"> <path fill=\"#E92D2F\" stroke=\"#E92D2F\" stroke-width=\".094\" stroke-miterlimit=\"10\" d=\"M20.2 0c.9 1.1 1.3 2.7 1 4-.3 1.6-1.2 3-2.2 4.2-.8 1-1.8 1.8-2.8 2.7-1.2.9-2.3 1.9-3 3.3-.6 1.1-.8 2.4-.3 3.5.7 2 2.3 3.4 3.2 5.3-.9-.8-1.9-1.8-2.8-2.7-.9-1-1.8-2-2.4-3.3-.4-.8-.6-1.8-.3-2.8.3-.9.9-1.7 1.6-2.4 1.8-1.8 4.1-3.2 6-5.1 1-1 1.8-2.3 2.1-3.7.2-.9.1-2-.1-3zm-1.5 11.7c2-1.4 4.3-2.4 6.6-3.1-1.8 1.2-3.8 2.3-5.4 3.8-.6.6-1.2 1.2-1.4 2-.2.6-.1 1.3.1 1.8.4 1 1.2 1.8 1.7 2.7.5.8.6 1.8.2 2.6-.5 1.2-1.6 2.1-2.7 2.8-.2.1-.3.3-.4.3.8-.7 1.3-1.6 1.3-2.6 0-.8-.4-1.4-.9-1.9-1-1.2-1.8-2.8-1.7-4.4.1-1.8 1.3-3.1 2.6-4z\"></path> <path fill=\"#0774BA\" stroke=\"#0774BA\" stroke-width=\".094\" stroke-miterlimit=\"10\" d=\"M25.7 23.5c.4-.5 1.1-.7 1.8-.8 1.1-.2 2.3.2 3 .8.7.6 1.1 1.5.9 2.4-.2 1.1-.8 1.9-1.7 2.6-1.4 1.2-3.2 1.8-5 2.3l.3-.3c1.3-.8 2.7-1.6 3.7-2.8.6-.8 1.1-1.7.8-2.7-.2-1.1-1.3-1.9-2.4-2-.4.2-.9.3-1.4.5zm-20.6.9c1.8-.8 3.9-1.3 6-1.3-1.2.3-2.4.7-3.5 1.2-.3.2-.6.3-.8.6 0 .1.2.3.3.3.7.3 1.4.3 2.2.4 2.6.2 5.2.1 7.9-.1 2.6-.2 5.1-.5 7.6-.9-.6.3-1.2.5-1.7.8-.3.2-.6.3-.9.3-3.1.7-6.4.9-9.6.9-1.3 0-2.4 0-3.7-.1-1.3-.1-2.8-.2-4.1-.6-.2.1-.5 0-.8-.3-.2-.1-.2-.3 0-.5.3-.3.7-.5 1.1-.7zm2.5 4.4c.5-.4 1.2-.7 1.8-.8-.2.3-.5.5-.5.8 0 .3.2.4.3.5.3.2.8.3 1.1.3 1.9.2 3.9.3 6 .2 1.8-.1 3.6-.4 5.4-.7.5.4 1.1.8 1.7 1.1-2.2.7-4.4 1-6.6 1.2-2.1.2-4.3.2-6.4-.2-.8-.2-1.7-.3-2.4-.8-.3-.2-.7-.4-.8-.8 0-.4.1-.6.4-.8zm1.1 4.4c.5-.4 1.1-.6 1.6-.8-.2.2-.5.4-.3.7.3.3.8.4 1.2.5 1.8.3 3.4.3 5.2.3 1.3-.1 2.6-.3 3.9-.5.8.4 1.5.8 2.3 1.1-1.2.5-2.5.9-3.8 1.2-2.2.4-4.4.4-6.6.1-1-.2-1.9-.4-2.9-.8-.3-.2-.7-.4-.8-.8-.2-.4 0-.8.2-1zm-5.6 2.9c.9-.3 1.9-.6 2.9-.6.4 0 .8 0 1.2.3-1.2.1-2.4.3-3.4.9-.3.2-.5.3-.6.6 0 .3.3.4.6.5 1.5.6 3.1.8 4.6.9 4.6.4 9.3.3 13.9-.2 1.8-.2 3.5-.4 5.2-.8.5-.2 1.2-.3 1.5-.8.3-.3.1-.7-.2-.9.3.2.8.4.8.9-.2.5-.7.8-1 1-1.3.7-2.8 1-4.2 1.3-4.2.8-8.4 1-12.7.8-3.2-.1-6.4-.4-9.6-.9-.6-.2-1.2-.3-1.6-.7-.3-.3 0-.8.3-.9.6-.7 1.5-1.1 2.3-1.4zm25.5 3.5c1-.3 2.1-.8 2.9-1.6-.2.9-.9 1.5-1.7 1.9-1.4.8-3.1 1.1-4.7 1.4-3.4.5-6.9.7-10.3.6-2.4-.1-4.8-.2-7.1-.7-.6-.2-1.2-.3-1.7-.6 2.1.3 4.2.5 6.3.6 3.4.1 6.9 0 10.3-.4 2-.2 4-.6 6-1.2z\"></path></svg></a></div>\n\n<div class=\"item\"><a href=\"https://github.com/rspective/voucherify-android-sdk\" target=\"_blank\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"36\" height=\"42\" viewBox=\"0 0 36 42\" enable-background=\"new 0 0 36 42\"> <path fill=\"#a4c828\" d=\"M35.6 25.5c0 1.4-1.1 2.4-2.4 2.4s-2.4-1.1-2.4-2.4V14.6c0-1.4 1.1-2.4 2.4-2.4s2.4 1.1 2.4 2.4v10.9zm-30.3 0c0 1.4-1.1 2.4-2.4 2.4S.5 26.8.5 25.5V14.6c0-1.4 1.1-2.4 2.4-2.4s2.4 1.1 2.4 2.4v10.9zM23.6 3.1L25.5.3c0-.1 0-.2-.2-.3-.1-.1-.3-.1-.3 0l-2 2.8c-1.3-.5-3-.8-5-.8s-3.7.3-5.1.8l-2-2.8c0-.1-.2 0-.3 0-.1.1-.2.2-.2.3l2 2.7c-5.7 2.5-5.8 8.6-5.8 8.6h22.9c-.1 0-.3-6.1-5.9-8.5M13 8.1c-.8 0-1.4-.6-1.4-1.4s.6-1.4 1.4-1.4 1.4.6 1.4 1.4c0 .7-.6 1.4-1.4 1.4m10 0c-.8 0-1.4-.6-1.4-1.4s.6-1.4 1.4-1.4 1.4.6 1.4 1.4c0 .7-.7 1.4-1.4 1.4\"></path> <path fill=\"#a4c828\" d=\"M29.5 13h-23v19.2c0 .8.6 1.4 1.4 1.4h3v6c0 1.4 1.1 2.4 2.4 2.4s2.4-1.1 2.4-2.4v-6.1h4.6v6.1c0 1.4 1.1 2.4 2.4 2.4s2.4-1.1 2.4-2.4v-6.1h3c.8 0 1.4-.6 1.4-1.4V13z\"></path> </svg></a></div>\n\n<div class=\"item\"><a href=\"https://github.com/voucherifyio/voucherify-dotNET-sdk\" target=\"_blank\"><svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 128 128\" width=\"42\" height=\"42\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"#1384C8\" d=\"M82.108 78.432c.479-1.232 1.022-2.445 1.427-3.701 2.288-7.097 4.554-14.2 6.805-21.309.865-2.731 1.813-5.42 3.515-7.767 2.692-3.709 6.442-5.652 10.88-6.331 1.741-.266 3.518-.389 5.28-.406 5.267-.05 10.536-.015 15.804-.01.28 0 .56.029.957.052-.129.304-.199.525-.311.724-1.955 3.494-3.872 7.009-5.885 10.468-3.505 6.022-7.016 12.042-10.631 17.998-2.319 3.819-4.834 7.52-7.687 10.974-2.105 2.548-4.321 4.984-7.146 6.77-1.925 1.217-3.981 1.929-6.315 1.917-8.278-.045-16.556-.012-24.834-.024-2.461-.004-4.568-.941-6.356-2.603-2.563-2.381-4.093-5.412-5.345-8.608-2.284-5.835-3.563-11.951-5.031-18.014-.688-2.838-1.47-5.654-2.215-8.478-.048-.183-.142-.354-.25-.617l-.577.542c-3.228 3.207-6.071 6.741-8.615 10.498-.693 1.024-.926 2.374-1.313 3.591-1.424 4.47-2.722 8.983-4.264 13.411-1.477 4.242-4.125 7.616-8.264 9.61-2.42 1.165-5.004 1.795-7.689 1.855-3.98.088-7.962.098-11.943.134-.952.009-.996-.069-.748-.99 1.707-6.338 3.87-12.514 6.58-18.492 2.794-6.167 6.085-12.048 10.231-17.419 2.823-3.657 5.941-7.031 9.843-9.582 1.979-1.293 4.083-2.315 6.477-2.584.394-.045.793-.073 1.189-.073 8.478-.004 16.956.082 25.433-.039 4.547-.065 7.839 1.855 10.304 5.515 1.533 2.276 2.63 4.761 3.553 7.328 1.861 5.178 3.018 10.547 4.325 15.878.748 3.051 1.581 6.081 2.379 9.12.06.228.157.446.238.668l.199-.006z\"/></svg></a></div>\n\n<div class=\"item\"><a href=\"https://github.com/voucherifyio/voucherify-python-sdk\" target=\"_blank\"><svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 128 128\" width=\"42\" height=\"42\"><linearGradient id=\"a\" gradientUnits=\"userSpaceOnUse\" x1=\"70.252\" y1=\"1237.476\" x2=\"170.659\" y2=\"1151.089\" gradientTransform=\"matrix(.563 0 0 -.568 -29.215 707.817)\"><stop offset=\"0\" stop-color=\"#5A9FD4\"/><stop offset=\"1\" stop-color=\"#306998\"/></linearGradient><path fill=\"url(#a)\" d=\"M63.391 1.988c-4.222.02-8.252.379-11.8 1.007-10.45 1.846-12.346 5.71-12.346 12.837v9.411h24.693v3.137h-33.961c-7.176 0-13.46 4.313-15.426 12.521-2.268 9.405-2.368 15.275 0 25.096 1.755 7.311 5.947 12.519 13.124 12.519h8.491v-11.282c0-8.151 7.051-15.34 15.426-15.34h24.665c6.866 0 12.346-5.654 12.346-12.548v-23.513c0-6.693-5.646-11.72-12.346-12.837-4.244-.706-8.645-1.027-12.866-1.008zm-13.354 7.569c2.55 0 4.634 2.117 4.634 4.721 0 2.593-2.083 4.69-4.634 4.69-2.56 0-4.633-2.097-4.633-4.69-.001-2.604 2.073-4.721 4.633-4.721z\"/><linearGradient id=\"b\" gradientUnits=\"userSpaceOnUse\" x1=\"209.474\" y1=\"1098.811\" x2=\"173.62\" y2=\"1149.537\" gradientTransform=\"matrix(.563 0 0 -.568 -29.215 707.817)\"><stop offset=\"0\" stop-color=\"#FFD43B\"/><stop offset=\"1\" stop-color=\"#FFE873\"/></linearGradient><path fill=\"url(#b)\" d=\"M91.682 28.38v10.966c0 8.5-7.208 15.655-15.426 15.655h-24.665c-6.756 0-12.346 5.783-12.346 12.549v23.515c0 6.691 5.818 10.628 12.346 12.547 7.816 2.297 15.312 2.713 24.665 0 6.216-1.801 12.346-5.423 12.346-12.547v-9.412h-24.664v-3.138h37.012c7.176 0 9.852-5.005 12.348-12.519 2.578-7.735 2.467-15.174 0-25.096-1.774-7.145-5.161-12.521-12.348-12.521h-9.268zm-13.873 59.547c2.561 0 4.634 2.097 4.634 4.692 0 2.602-2.074 4.719-4.634 4.719-2.55 0-4.633-2.117-4.633-4.719 0-2.595 2.083-4.692 4.633-4.692z\"/><radialGradient id=\"c\" cx=\"1825.678\" cy=\"444.45\" r=\"26.743\" gradientTransform=\"matrix(0 -.24 -1.055 0 532.979 557.576)\" gradientUnits=\"userSpaceOnUse\"><stop offset=\"0\" stop-color=\"#B8B8B8\" stop-opacity=\".498\"/><stop offset=\"1\" stop-color=\"#7F7F7F\" stop-opacity=\"0\"/></radialGradient><path opacity=\".444\" fill=\"url(#c)\" enable-background=\"new\" d=\"M97.309 119.597c0 3.543-14.816 6.416-33.091 6.416-18.276 0-33.092-2.873-33.092-6.416 0-3.544 14.815-6.417 33.092-6.417 18.275 0 33.091 2.872 33.091 6.417z\"/></svg></a></div>\n</div>\n\n<style>\n.items\n{\n display: table;\n width: 50%;\n}\n.item\n{\n display:table-cell;\n}\n</style>" } [/block] ## Customer tracking The redeem operation is a key part of [Customer tracking] (doc:customer-tracking) workflow. There're 3 ways you can identify your end customer in Voucherify within this request. You can either provide a tracking ID (e.g. your customer's login or a generated id), a customer ID (if the customer is already stored in Voucherify) or a full `customer` object in the payload. Note that you can pass and thus store any customer-related metadata. See examples on the right. <!-- title: "Example Customer" lineNumbers: true --> ```json "customer": { "source_id": "alice.morgan", "name": "Alice Morgan", "email": "alice@morgan.com", "description": "", "metadata": { "locale": "en-GB", "shoeSize": 5, "favourite_brands": ["Armani", "L'Autre Chose", "Vicini"] } } ``` If you already created a customer profile in Voucherify's database, whether it was implicitly by providing it to the redeem function or explicitly by invoking the <!-- [Create Customer](OpenAPI.json/paths/~1customers/post) -->[Create Customer](ref:create-customer) method, you can identify your customer in redemptions by a generated ID (starting with `cust_`). <!-- lineNumbers: true --> ```json title=Example Customer Identifier [object] "customer": { "id": "cust_C9qJ3xKgZFqkpMw7b21MF2ow" } ``` <!-- lineNumbers: true --> ```json title=Example Customer Identifier { "customer": "cust_C9qJ3xKgZFqkpMw7b21MF2ow" } ``` <!-- lineNumbers: true --> ```json title=Example Customer Identifier by Source ID { "customer": "alice.morgan" } ``` <!-- theme: info --> > 📘 Redemption rollback > > Do you need to undo a redemption? You can do it with <!-- [redemption rollback](OpenAPI.json/paths/~1redemptions~1{redemptionId}~1rollback/post) -->[redemption rollback](ref:rollback-redemption). ## Redemption failures There are several reasons why a redemption may fail. You will get the reason in the error key: - `resource_not_found` - voucher with given code does not exist - `voucher_not_active` - voucher is not active yet (before start date) - `voucher_expired` - voucher has already expired (after expiration date) - `voucher_disabled` - voucher has been disabled (`active: false`) - `quantity_exceeded` - voucher's redemptions limit has been exceeded - `gift_amount_exceeded` - gift amount has been exceeded - `customer_rules_violated` - customer did not match the segment - `order_rules_violated` - order did not match validation rules - `invalid_order` - order was specified incorrectly - `invalid_amount` - order amount was specified incorrectly - `missing_amount` - order amount was not specified - `missing_order_items` - order items were not specified - `missing_customer` - customer was not specified ## Order object The purchase of previously defined products (products are stored in Voucherify) by end customers is handled through the order object. You are obligated to pass the order object in case you use validation rules. You can learn more about the [validation rules structure] (doc:validation-rules). | **Attributes** | **Description** | |:---|:---| | amount<br>`integer` | A positive integer representing the total amount for the order. | | items<br>`list` | List of items constituting the order. Order items can be defined either by `product_id` or `sku_id`. Along with every item you must define the `quantity`.<br><br>Child attributes:<br><br>- `product_id` (*string*) - The ID of the associated product object for this line item.<br><br>- `sku_id` (*string*) - The ID of the associated variant (sku) object for this line item.<br><br>- `quantity` (*integer*) - A positive integer representing the number of instances of the item that are included in this order line.<br><br>- `price` (*integer*) - A positive integer representing the cost of an item.<br><br>- `amount` (*integer*) - `quantity` * `price` (you should provide it to retrieve `discount_amount` for a particular order item if the discount is applied only to this item learn more | <!-- theme: info --> > 🚧 Order ID > > If you use the same order id in more than one redemption request, all valid discounts provided in the redemption payload will be applied to the given order. [Read more in this guide] (https://docs.voucherify.io/docs/manage-stackable-discounts). <!-- lineNumbers: true --> ```json title=Example Order "order": { "amount": 10000, "items": [ { "product_id": "prod_Bi7sRr3kwvxH2I", "quantity": 1 } ] } ``` ## Gift Vouchers - redeem Gift Card and control redeemed amount In Voucherify,you can also create a gift card for customers. Customers then can use gift card credits to fulfill the order. A user can specify how many credits he wants to use from the gift card. The available balance of credits is counted based on policy rules attached to the Gift Voucher definition. When the user wants to define how many gift credits are to be used from the gift card to complete the order, the `credits` property can be assigned the equivalent value in the lowest currency in the request body. The value of credits being applied to the order cannot be higher than the current balance on the gift card. <!-- lineNumbers: true --> ```cURL title=Example Request - control redeemed amount curl -i -X **POST** \ -H "Content-Type:application/json" \ -H "X-App-Id:c70a6f00-cf91-4756-9df5-47628850002b" \ -H "X-App-Token:3266b9f8-e246-4f79-bdf0-833929b1380c" \ -d '{ "order": { "amount": 2500 }, "gift": { "credits": 1500 } }' \ 'https://api.voucherify.io/v1/vouchers/aDm4CRR3/redemption' ``` ## Loyalty Coins - redeem loyalty card and pay with points Voucherify offers the possibility to set up a reward type in the Loyalty Program, which allows using loyalty points as gift credits. The available balance of credits is counted based on policy rules attached to the reward definition. If a user configures just one reward type of paying in points, in the redemption request, there is no additional information required. Voucherify will automatically select as a proper reward definition and will calculate the discount based on the attached policy. <!-- lineNumbers: true --> ```json title=Example Request { "order": { "amount": 25000, "items": [ { "product_id": "test_source_1", "quantity": "1", "price": 15000 }, { "product_id": "test_source_2", "quantity": "1", "price": 10000 } ] }, "metadata": { "category": "vip", "shop": "s1", "location": "l1" } } ``` <!-- lineNumbers: true --> ```json title=Example Response { "id": "r_zv5Qn7cF68RbVX4foKxgwUi1", "object": "redemption", "date": "2020-05-24T13:44:20Z", "customer_id": "cust_lXisxEaEHYKTEVf1YnNS8AUh", "amount": 250, "order": { "status": "PROCESSING", "items": [ { "object": "order_item", "product_id": "test_source_1", "quantity": 1, "amount": 15000, "price": 15000 }, { "object": "order_item", "product_id": "test_source_2", "quantity": 1, "amount": 10000, "price": 10000 } ], "customer": { "id": "cust_lXisxEaEHYKTEVf1YnNS8AUh", "object": "customer", "referrals": { "campaigns": [], "total": 0 } }, "amount": 25000, "object": "order", "id": "ord_Tgi2ApelDyl86sm5AYDKCBMZ", "created_at": "2020-05-24T13:44:20Z", "discount_amount": 25000 }, "customer": { "id": "cust_lXisxEaEHYKTEVf1YnNS8AUh", "source_id": "tom+Loyalty@email.com", "name": "Tom Loyalty", "email": "tom+Loyalty@email.com", "metadata": {}, "object": "customer" }, "reward": { "assignment_id": "rewa_pHilLjHWOD7oNjJZnog3VoEi", "loyalty_tier_id": "ltr_3q5dW6GaRC4QkA1oYmfGy1k1", "id": "rew_3qmzGPWJ7LfLXnPAjmbPacIl", "name": "1 point - 25 cents", "created_at": "2020-05-22T18:39:52Z", "updated_at": "2020-05-23T08:18:55Z", "parameters": { "automation_id": null, "coin": { "exchange_ratio": 0.25 } }, "type": "COIN", "object": "reward" }, "metadata": { "category": "vip", "shop": "s1", "location": "l1" }, "result": "SUCCESS", "tracking_id": "track_IWQYtuUE7phYpPzTHD5uwbyvlrO4nqyzipbQQtsHrRw=", "voucher": { "id": "v_wjgLC2lrQy1urPOdd35JX0RtkcOcQOmb", "code": "Dm1x8MuX", "campaign": "TestLoyalty-GivePoints", "campaign_id": "camp_qVVaC4vpVlof03eBi8qb5gE7", "category": null, "type": "LOYALTY_CARD", "discount": null, "gift": null, "loyalty_card": { "points": 489, "balance": 23 }, "start_date": null, "expiration_date": null, "validity_timeframe": null, "validity_day_of_week": null, "publish": { "object": "list", "count": 1, "url": "/v1/vouchers/Dm1x8MuX/publications?page=1&limit=10" }, "redemption": { "object": "list", "quantity": null, "redeemed_quantity": 8, "url": "/v1/vouchers/Dm1x8MuX/redemptions?page=1&limit=10", "redeemed_points": 466 }, "active": true, "additional_info": null, "metadata": {}, "assets": { "qr": { "id": "U2FsdGVkX1+9Eo0bLWMZmYK6nQxl3AyR3nqkloGURcpRJcxL3hl5xXSGRYjYdySc9twLaKnYGVXbLtjCGW8FBotl1rTAxLJQm4okoJ385Gd6pc1ty6AnhaHHJjCeLoYYSQCG1EyP9PRxnTihjmsE9g==", "url": "https://dev.dl.voucherify.io/api/v1/assets/qr/U2FsdGVkX1%2B9Eo0bLWMZmYK6nQxl3AyR3nqkloGURcpRJcxL3hl5xXSGRYjYdySc9twLaKnYGVXbLtjCGW8FBotl1rTAxLJQm4okoJ385Gd6pc1ty6AnhaHHJjCeLoYYSQCG1EyP9PRxnTihjmsE9g%3D%3D" }, "barcode": { "id": "U2FsdGVkX19NfR0ANlhLM7Df9Ec+xqTh6aTbHakk/Gzeh9zTiuj8KUBLswVXkz0gdLVnn1ZtzjCv7oF/BSQTyJx0YSK+HIUG9RGD+9rVhiC7+4WkSKrgAZ+NeqQBIqcespt8WWygXjfkvbyXBSF7Lg==", "url": "https://dev.dl.voucherify.io/api/v1/assets/barcode/U2FsdGVkX19NfR0ANlhLM7Df9Ec%2BxqTh6aTbHakk%2FGzeh9zTiuj8KUBLswVXkz0gdLVnn1ZtzjCv7oF%2FBSQTyJx0YSK%2BHIUG9RGD%2B9rVhiC7%2B4WkSKrgAZ%2BNeqQBIqcespt8WWygXjfkvbyXBSF7Lg%3D%3D" } }, "is_referral_code": false, "holder_id": "cust_lXisxEaEHYKTEVf1YnNS8AUh", "updated_at": "2020-05-24T13:44:20Z", "holder": { "id": "cust_lXisxEaEHYKTEVf1YnNS8AUh", "source_id": "tom+Loyalty@email.com", "name": "Tom Loyalty", "email": "tom+Loyalty@email.com", "metadata": {}, "object": "customer" }, "object": "voucher", "validation_rules_assignments": { "data": [], "object": "list", "total": 0, "data_ref": "data" } } } ``` In case the user wants to define how much he spends in points, it is configurable by property `points` in a request body. <!-- lineNumbers: true --> ```json title=Example Request { "reward": { "points": 10 }, "order": { "amount": 25000, "items": [ { "product_id": "test_source_1", "quantity": "1", "price": 15000 }, { "product_id": "test_source_2", "quantity": "1", "price": 10000 } ] }, "metadata": { "category": "vip", "shop": "s1", "location": "l1" } } ``` <!-- lineNumbers: true --> ```json title=Example Response { "id": "r_NJIfNYD8uc2lNm3YBAqXr3FF", "object": "redemption", "date": "2020-05-24T16:28:29Z", "customer_id": "cust_lXisxEaEHYKTEVf1YnNS8AUh", "amount": 10, "order": { "status": "PROCESSING", "items": [ { "object": "order_item", "product_id": "test_source_1", "quantity": 1, "amount": 15000, "price": 15000 }, { "object": "order_item", "product_id": "test_source_2", "quantity": 1, "amount": 10000, "price": 10000 } ], "customer": { "id": "cust_lXisxEaEHYKTEVf1YnNS8AUh", "object": "customer", "referrals": { "campaigns": [], "total": 0 } }, "amount": 25000, "object": "order", "id": "ord_70kKdXIKCSx5cfglKSpz9aHy", "created_at": "2020-05-24T16:28:29Z", "discount_amount": 250 }, "customer": { "id": "cust_lXisxEaEHYKTEVf1YnNS8AUh", "source_id": "tom+Loyalty@email.com", "name": "Tom Loyalty", "email": "tom+Loyalty@email.com", "metadata": {}, "object": "customer" }, "reward": { "assignment_id": "rewa_pHilLjHWOD7oNjJZnog3VoEi", "loyalty_tier_id": null, "id": "rew_3qmzGPWJ7LfLXnPAjmbPacIl", "name": "1 point - 25 cents", "created_at": "2020-05-22T18:39:52Z", "updated_at": "2020-05-24T13:44:26Z", "parameters": { "automation_id": null, "coin": { "exchange_ratio": 0.25 } }, "type": "COIN", "object": "reward" }, "metadata": { "category": "vip", "shop": "s1", "location": "l1" }, "result": "SUCCESS", "tracking_id": "track_IWQYtuUE7phYpPzTHD5uwbyvlrO4nqyzipbQQtsHrRw=", "voucher": { "id": "v_wjgLC2lrQy1urPOdd35JX0RtkcOcQOmb", "code": "Dm1x8MuX", "campaign": "TestLoyalty-GivePoints", "campaign_id": "camp_qVVaC4vpVlof03eBi8qb5gE7", "category": null, "type": "LOYALTY_CARD", "discount": null, "gift": null, "loyalty_card": { "points": 539, "balance": 63 }, "start_date": null, "expiration_date": null, "validity_timeframe": null, "validity_day_of_week": null, "publish": { "object": "list", "count": 1, "url": "/v1/vouchers/Dm1x8MuX/publications?page=1&limit=10" }, "redemption": { "object": "list", "quantity": null, "redeemed_quantity": 9, "url": "/v1/vouchers/Dm1x8MuX/redemptions?page=1&limit=10", "redeemed_points": 476 }, "active": true, "additional_info": null, "metadata": {}, "assets": { "qr": { "id": "U2FsdGVkX1+9Eo0bLWMZmYK6nQxl3AyR3nqkloGURcpRJcxL3hl5xXSGRYjYdySc9twLaKnYGVXbLtjCGW8FBotl1rTAxLJQm4okoJ385Gd6pc1ty6AnhaHHJjCeLoYYSQCG1EyP9PRxnTihjmsE9g==", "url": "https://dev.dl.voucherify.io/api/v1/assets/qr/U2FsdGVkX1%2B9Eo0bLWMZmYK6nQxl3AyR3nqkloGURcpRJcxL3hl5xXSGRYjYdySc9twLaKnYGVXbLtjCGW8FBotl1rTAxLJQm4okoJ385Gd6pc1ty6AnhaHHJjCeLoYYSQCG1EyP9PRxnTihjmsE9g%3D%3D" }, "barcode": { "id": "U2FsdGVkX19NfR0ANlhLM7Df9Ec+xqTh6aTbHakk/Gzeh9zTiuj8KUBLswVXkz0gdLVnn1ZtzjCv7oF/BSQTyJx0YSK+HIUG9RGD+9rVhiC7+4WkSKrgAZ+NeqQBIqcespt8WWygXjfkvbyXBSF7Lg==", "url": "https://dev.dl.voucherify.io/api/v1/assets/barcode/U2FsdGVkX19NfR0ANlhLM7Df9Ec%2BxqTh6aTbHakk%2FGzeh9zTiuj8KUBLswVXkz0gdLVnn1ZtzjCv7oF%2FBSQTyJx0YSK%2BHIUG9RGD%2B9rVhiC7%2B4WkSKrgAZ%2BNeqQBIqcespt8WWygXjfkvbyXBSF7Lg%3D%3D" } }, "is_referral_code": false, "holder_id": "cust_lXisxEaEHYKTEVf1YnNS8AUh", "updated_at": "2020-05-24T16:28:29Z", "holder": { "id": "cust_lXisxEaEHYKTEVf1YnNS8AUh", "source_id": "tom+Loyalty@email.com", "name": "Tom Loyalty", "email": "tom+Loyalty@email.com", "metadata": {}, "object": "customer" }, "object": "voucher", "validation_rules_assignments": { "data": [], "object": "list", "total": 0, "data_ref": "data" } } } ``` Moreover, it is possible to define many levels of reward in which collected points can be used as gift credits. Per each tier, we can implement different conversion factors. Having many options in the rewards catalog, we will need to select a coins calculation policy (reward ID) that we want to use for calculating a final discount in the redemption request. <!-- lineNumbers: true --> ```json title=Example Request { "reward": { "points": 30, "id": "rew_noP2S5H8PEBFT97mennSA531" }, "order": { "amount": 25000, "items": [ { "product_id": "test_source_1", "quantity": "1", "price": 15000 }, { "product_id": "test_source_2", "quantity": "1", "price": 10000 } ] }, "metadata": { "category": "vip", "shop": "s1", "location": "l1" } } ``` <!-- lineNumbers: true --> ```json title=Example Response { "id": "r_se17sLon6YX5wMhYVzfQa2dc", "object": "redemption", "date": "2020-05-24T13:41:16Z", "customer_id": "cust_lXisxEaEHYKTEVf1YnNS8AUh", "amount": 10, "order": { "status": "PROCESSING", "items": [ { "object": "order_item", "product_id": "test_source_1", "quantity": 1, "amount": 15000, "price": 15000 }, { "object": "order_item", "product_id": "test_source_2", "quantity": 1, "amount": 10000, "price": 10000 } ], "customer": { "id": "cust_lXisxEaEHYKTEVf1YnNS8AUh", "object": "customer", "referrals": { "campaigns": [], "total": 0 } }, "amount": 25000, "object": "order", "id": "ord_EfMmve84JzQIg2MCM3cAvLgF", "created_at": "2020-05-24T13:41:16Z", "discount_amount": 25000 }, "customer": { "id": "cust_lXisxEaEHYKTEVf1YnNS8AUh", "source_id": "tom+Loyalty@email.com", "name": "Tom Loyalty", "email": "tom+Loyalty@email.com", "metadata": {}, "object": "customer" }, "reward": { "assignment_id": "rewa_g3QQwQfhJrjBYzEa1NJkub7N", "loyalty_tier_id": null, "id": "rew_noP2S5H8PEBFT97mennSA531", "name": "1 point 25$", "created_at": "2020-05-24T12:57:19Z", "parameters": { "automation_id": null, "coin": { "exchange_ratio": 25.0 } }, "type": "COIN", "object": "reward" }, "metadata": { "category": "vip", "shop": "s1", "location": "l1" }, "result": "SUCCESS", "tracking_id": "track_IWQYtuUE7phYpPzTHD5uwbyvlrO4nqyzipbQQtsHrRw=", "voucher": { "id": "v_wjgLC2lrQy1urPOdd35JX0RtkcOcQOmb", "code": "Dm1x8MuX", "campaign": "TestLoyalty-GivePoints", "campaign_id": "camp_qVVaC4vpVlof03eBi8qb5gE7", "category": null, "type": "LOYALTY_CARD", "discount": null, "gift": null, "loyalty_card": { "points": 439, "balance": 223 }, "start_date": null, "expiration_date": null, "validity_timeframe": null, "validity_day_of_week": null, "publish": { "object": "list", "count": 1, "url": "/v1/vouchers/Dm1x8MuX/publications?page=1&limit=10" }, "redemption": { "object": "list", "quantity": null, "redeemed_quantity": 7, "url": "/v1/vouchers/Dm1x8MuX/redemptions?page=1&limit=10", "redeemed_points": 216 }, "active": true, "additional_info": null, "metadata": {}, "assets": { "qr": { "id": "U2FsdGVkX1+9Eo0bLWMZmYK6nQxl3AyR3nqkloGURcpRJcxL3hl5xXSGRYjYdySc9twLaKnYGVXbLtjCGW8FBotl1rTAxLJQm4okoJ385Gd6pc1ty6AnhaHHJjCeLoYYSQCG1EyP9PRxnTihjmsE9g==", "url": "https://dev.dl.voucherify.io/api/v1/assets/qr/U2FsdGVkX1%2B9Eo0bLWMZmYK6nQxl3AyR3nqkloGURcpRJcxL3hl5xXSGRYjYdySc9twLaKnYGVXbLtjCGW8FBotl1rTAxLJQm4okoJ385Gd6pc1ty6AnhaHHJjCeLoYYSQCG1EyP9PRxnTihjmsE9g%3D%3D" }, "barcode": { "id": "U2FsdGVkX19NfR0ANlhLM7Df9Ec+xqTh6aTbHakk/Gzeh9zTiuj8KUBLswVXkz0gdLVnn1ZtzjCv7oF/BSQTyJx0YSK+HIUG9RGD+9rVhiC7+4WkSKrgAZ+NeqQBIqcespt8WWygXjfkvbyXBSF7Lg==", "url": "https://dev.dl.voucherify.io/api/v1/assets/barcode/U2FsdGVkX19NfR0ANlhLM7Df9Ec%2BxqTh6aTbHakk%2FGzeh9zTiuj8KUBLswVXkz0gdLVnn1ZtzjCv7oF%2FBSQTyJx0YSK%2BHIUG9RGD%2B9rVhiC7%2B4WkSKrgAZ%2BNeqQBIqcespt8WWygXjfkvbyXBSF7Lg%3D%3D" } }, "is_referral_code": false, "holder_id": "cust_lXisxEaEHYKTEVf1YnNS8AUh", "updated_at": "2020-05-24T13:41:16Z", "holder": { "id": "cust_lXisxEaEHYKTEVf1YnNS8AUh", "source_id": "tom+Loyalty@email.com", "name": "Tom Loyalty", "email": "tom+Loyalty@email.com", "metadata": {}, "object": "customer" }, "object": "voucher", "validation_rules_assignments": { "data": [], "object": "list", "total": 0, "data_ref": "data" } } } ```
Copy page
Was this page helpful?
Yes
No
Get Voucher's Redemptions
Rollback Redemption
⌘I